---
title: Núcleo
description: Configuração base do Ultracite com regras de linting independentes de framework.
---

A configuração core do Ultracite fornece um conjunto abrangente de regras de linting independentes de framework e definições de formatação. Esta é a base que todas as outras configurações específicas de framework estendem.

## Instalação

A configuração core é incluída automaticamente quando você executa:

```bash
npx ultracite init
```

Ou adicione-a manualmente ao seu `biome.jsonc`:

```jsonc title="biome.jsonc"
{
  "extends": ["ultracite/core"]
}
```

## Visão geral

A configuração core inclui centenas de regras rígidas de lint cobrindo:

- **Acessibilidade (a11y)**: Imponha atributos ARIA, HTML semântico e navegação por teclado
- **Complexidade**: Reduzir a complexidade cognitiva e impor melhores práticas
- **Correção**: Prevenir erros comuns e impor segurança de tipos
- **Desempenho**: Otimizar o código para melhor desempenho em tempo de execução
- **Segurança**: Prevenir vulnerabilidades de segurança
- **Estilo**: Aplicar um estilo de código consistente
- **Suspeitos**: Detectar padrões suspeitos que podem indicar bugs

## Configurações do formatador

- **Indentação**: 2 espaços
- **Largura de linha**: 80 caracteres
- **Final de linha**: LF (estilo Unix)
- **Ponto e vírgula**: Sempre exigidos
- **Aspas**: Aspas duplas para JavaScript/TypeScript e JSON
- **Vírgulas finais**: Estilo ES5 (arrays/objetos multilinha)
- **Parênteses em arrow functions**: Incluir parênteses sempre

## Principais recursos

### Rigor do TypeScript

A configuração core habilita verificações estritas do TypeScript:

- Desencoraja o uso de `any` (`noExplicitAny: error`)
- Exige tratamento de `null/undefined`
- Prefere tipos explícitos em certas situações
- Impõe segurança de tipos em toda a base de código

### Equivalentes recomendados do ESLint

Regras comuns de melhores práticas estão incluídas:

- Sem variáveis não utilizadas (`noUnusedVariables: error`)
- Sem imports não utilizados (`noUnusedImports: error`)
- Sem eval explícito (`noGlobalEval: error`)
- Sem prototype pollution (`noPrototypeBuiltins: error`)

### Acessibilidade por padrão

Regras equivalentes a padrões de acessibilidade:

- Atributos ARIA devem ser válidos
- Elementos HTML semânticos preferidos
- Suporte a navegação por teclado exigido
- Texto alternativo para imagens exigido

### Suporte ao Node.js

Tratamento específico por ambiente:

- Reconhece globais do Node.js (`module`, `process`)
- Exige o protocolo `node:` para módulos internos
- Suporta tanto CommonJS quanto ESM

## Referência completa de regras

### Acessibilidade (a11y)

| Rule | Setting | Description |
|------|---------|-------------|
| `noAccessKey` | `error` | Impõe que o atributo `accessKey` não seja usado em nenhum elemento HTML. |
| `noAriaHiddenOnFocusable` | `error` | Impõe que `aria-hidden="true"` não seja definido em elementos focáveis. |
| `noAriaUnsupportedElements` | `error` | Impõe que elementos que não suportam papéis, estados e propriedades ARIA não tenham esses atributos. |
| `noAutofocus` | `off` | Impõe que a prop `autoFocus` não seja usada em elementos. |
| `noDistractingElements` | `error` | Impõe que elementos distrativos não sejam utilizados. |
| `noHeaderScope` | `error` | A prop scope deve ser usada apenas em elementos `<th>`. |
| `noInteractiveElementToNoninteractiveRole` | `error` | Impõe que papéis ARIA não-interativos não sejam atribuídos a elementos HTML interativos. |
| `noLabelWithoutControl` | `error` | Impõe que um elemento ou componente label tenha um rótulo de texto e um input associado. |
| `noNoninteractiveElementInteractions` | `error` | Proíbe o uso de manipuladores de eventos em elementos não interativos. |
| `noNoninteractiveElementToInteractiveRole` | `error` | Impõe que papéis ARIA interativos não sejam atribuídos a elementos HTML não interativos. |
| `noNoninteractiveTabindex` | `error` | Impõe que `tabIndex` não seja atribuído a elementos HTML não interativos. |
| `noPositiveTabindex` | `error` | Evita o uso de inteiros positivos na propriedade `tabIndex`. |
| `noRedundantAlt` | `error` | Impõe que a prop alt de img não contenha as palavras `image`, `picture` ou `photo`. |
| `noRedundantRoles` | `error` | Impõe que a propriedade role explícita não seja igual ao papel implícito/padrão de um elemento. |
| `noStaticElementInteractions` | `error` | Impõe que elementos estáticos e visíveis (como `<div>`) que tenham manipuladores de clique usem o atributo role válido. |
| `noSvgWithoutTitle` | `error` | Impõe o uso do elemento title para o elemento `svg`. |
| `useAltText` | `error` | Impõe que todos os elementos que requerem texto alternativo tenham informação significativa para o usuário final. |
| `useAnchorContent` | `error` | Impõe que âncoras tenham conteúdo e que o conteúdo seja acessível a leitores de tela. |
| `useAriaActivedescendantWithTabindex` | `error` | Impõe que `tabIndex` seja atribuído a elementos HTML não interativos com aria-activedescendant. |
| `useAriaPropsForRole` | `error` | Impõe que elementos com papéis ARIA tenham todos os atributos ARIA necessários para esse papel. |
| `useAriaPropsSupportedByRole` | `error` | Impõe que propriedades ARIA sejam válidas para os papéis suportados pelo elemento. |
| `useButtonType` | `error` | Impõe o uso do atributo `type` para o elemento button. |
| `useFocusableInteractive` | `error` | Elementos com papel interativo e manipuladores de interação devem ser focáveis. |
| `useHeadingContent` | `error` | Impõe que elementos de título (`h1`, `h2`, etc.) tenham conteúdo e que esse conteúdo seja acessível a leitores de tela. |
| `useHtmlLang` | `error` | Impõe que o elemento `html` tenha o atributo `lang`. |
| `useIframeTitle` | `error` | Impõe o uso do atributo title para o elemento iframe. |
| `useKeyWithClickEvents` | `error` | Impõe que `onClick` seja acompanhado por pelo menos um dos seguintes: `onKeyUp`, `onKeyDown`, `onKeyPress`. |
| `useKeyWithMouseEvents` | `error` | Impõe que `onMouseOver` / `onMouseOut` sejam acompanhados por `onFocus` / `onBlur`. |
| `useMediaCaption` | `error` | Impõe que elementos de áudio e vídeo tenham uma track para legendas. |
| `useSemanticElements` | `error` | Detecta o uso de atributos role em elementos JSX e sugere usar elementos semânticos em vez disso. |
| `useValidAnchor` | `error` | Impõe que todas as âncoras sejam válidas e navegáveis. |
| `useValidAriaProps` | `error` | Garante que propriedades ARIA `aria-*` sejam todas válidas. |
| `useValidAriaRole` | `error` | Elementos com papéis ARIA devem usar um papel ARIA válido e não abstrato. |
| `useValidAriaValues` | `error` | Impõe que valores de estados e propriedades ARIA sejam válidos. |
| `useValidAutocomplete` | `error` | Use valores válidos para o atributo autocomplete em elementos input. |
| `useValidLang` | `error` | Garante que o valor passado ao atributo `lang` seja um código ISO de idioma e/ou país correto. |
| `useGenericFontNames` | `error` | Proíbe a ausência de uma família genérica dentro de definições de fontes (CSS). |

### Complexidade

| Rule | Setting | Description |
|------|---------|-------------|
| `noAdjacentSpacesInRegex` | `error` | Proíbe o uso ambíguo de caracteres de espaço consecutivos em literais de expressões regulares. |
| `noArguments` | `error` | Proíbe o uso de arguments. |
| `noBannedTypes` | `error` | Proíbe aliases de tipos primitivos e tipos enganadores. |
| `noCommaOperator` | `error` | Proíbe o operador vírgula. |
| `noEmptyTypeParameters` | `error` | Proíbe parâmetros de tipo vazios em aliases de tipo e interfaces. |
| `noExcessiveCognitiveComplexity` | `error` | Proíbe funções que excedem um determinado escore de Complexidade Cognitiva. |
| `noExcessiveLinesPerFunction` | `off` | Restringe o número de linhas de código em uma função. |
| `noExcessiveNestedTestSuites` | `error` | Esta regra impõe uma profundidade máxima para `describe()` aninhados em arquivos de teste. |
| `noExtraBooleanCast` | `error` | Proíbe casts booleanos desnecessários. |
| `noFlatMapIdentity` | `error` | Proíbe o uso de callback desnecessário em flatMap. |
| `noForEach` | `error` | Prefira a instrução `for...of` em vez de `Array.forEach`. |
| `noImplicitCoercions` | `off` | Proíbe conversões de tipo abreviadas. |
| `noImportantStyles` | `off` | Proíbe o uso de `!important` em estilos (CSS). |
| `noStaticOnlyClass` | `error` | Esta regra reporta quando uma classe não tem membros não-estáticos. |
| `noThisInStatic` | `error` | Proíbe `this` e `super` em contextos estáticos. |
| `noUselessCatch` | `error` | Proíbe cláusulas catch desnecessárias. |
| `noUselessConstructor` | `error` | Proíbe construtores desnecessários. |
| `noUselessContinue` | `error` | Evita o uso de continue desnecessário. |
| `noUselessEmptyExport` | `error` | Proíbe exports vazios que não alteram nada em um arquivo de módulo. |
| `noUselessEscapeInRegex` | `error` | Proíbe sequências de escape desnecessárias em literais de expressão regular. |
| `noUselessFragments` | `error` | Proíbe fragments desnecessários. |
| `noUselessLabel` | `error` | Proíbe labels desnecessárias. |
| `noUselessLoneBlockStatements` | `error` | Proíbe declarações de bloco aninhadas desnecessárias. |
| `noUselessRename` | `error` | Proíbe renomear import, export e atribuições desestruturadas para o mesmo nome. |
| `noUselessStringConcat` | `error` | Proíbe concatenação desnecessária de strings ou literais template. |
| `noUselessStringRaw` | `error` | Proíbe o uso desnecessário de `String.raw` em literais template sem sequências de escape. |
| `noUselessSwitchCase` | `error` | Proíbe case inútil em declarações switch. |
| `noUselessTernary` | `error` | Proíbe operadores ternários quando alternativas mais simples existem. |
| `noUselessThisAlias` | `error` | Proíbe alias inútil de `this`. |
| `noUselessTypeConstraint` | `error` | Proíbe usar `any` ou `unknown` como restrição de tipo. |
| `noUselessUndefinedInitialization` | `error` | Proíbe inicializar variáveis com `undefined`. |
| `noVoid` | `error` | Proíbe o uso do operador `void`, que não é um operador familiar. |
| `useArrowFunction` | `error` | Use arrow functions em vez de function expressions. |
| `useDateNow` | `error` | Use `Date.now()` para obter o número de milissegundos desde a Época Unix. |
| `useFlatMap` | `error` | Promove o uso de `.flatMap()` quando `map().flat()` são usados em conjunto. |
| `useIndexOf` | `error` | Prefira `Array#{indexOf,lastIndexOf}()` sobre `Array#{findIndex,findLastIndex}()` ao procurar o índice de um item. |
| `useLiteralKeys` | `error` | Impõe o uso de acesso literal a propriedades em vez de acesso por propriedade computada. |
| `useNumericLiterals` | `error` | Proíbe `parseInt()` e `Number.parseInt()` em favor de literais binários, octais e hexadecimais. |
| `useOptionalChain` | `error` | Impõe o uso de encadeamento opcional conciso em vez de expressões lógicas encadeadas. |
| `useRegexLiterals` | `error` | Impõe o uso de literais de expressão regular em vez do construtor `RegExp`, se possível. |
| `useSimpleNumberKeys` | `error` | Proíbe nomes de membros de objeto numéricos que não sejam base 10 ou usem underscore como separador. |
| `useSimplifiedLogicExpression` | `error` | Descarta termos redundantes de expressões lógicas. |
| `useWhile` | `error` | Impõe o uso de loops while em vez de for quando as expressões de inicialização e atualização não são necessárias. |

### Correção

| Rule | Setting | Description |
|------|---------|-------------|
| `noConstAssign` | `error` | Evita que variáveis const sejam reatribuídas. |
| `noConstantCondition` | `error` | Proíbe expressões constantes em condições. |
| `noConstantMathMinMaxClamp` | `error` | Proíbe o uso de `Math.min` e `Math.max` para restringir um valor quando o resultado em si é constante. |
| `noConstructorReturn` | `error` | Proíbe retornar um valor de um construtor. |
| `noEmptyCharacterClassInRegex` | `error` | Proíbe classes de caracteres vazias em literais de expressão regular. |
| `noEmptyPattern` | `error` | Proíbe padrões de desestruturação vazios. |
| `noGlobalDirnameFilename` | `error` | Proíbe o uso de `__dirname` e `__filename` no escopo global. |
| `noGlobalObjectCalls` | `error` | Proíbe chamar propriedades de objetos globais como funções. |
| `noInnerDeclarations` | `error` | Proíbe declarações de função e `var` que são acessíveis fora de seu bloco. |
| `noInvalidBuiltinInstantiation` | `error` | Garante que builtins sejam corretamente instanciados. |
| `noInvalidConstructorSuper` | `error` | Previne o uso incorreto de `super()` dentro de classes. |
| `noInvalidDirectionInLinearGradient` | `error` | Proíbe valores de direção não padrão para funções de gradiente linear (CSS). |
| `noInvalidGridAreas` | `error` | Proíbe áreas de grid nomeadas inválidas em CSS Grid Layouts (CSS). |
| `noInvalidPositionAtImportRule` | `error` | Proíbe o uso de at-rules `@import` em posições inválidas (CSS). |
| `noInvalidUseBeforeDeclaration` | `error` | Proíbe o uso de variáveis e parâmetros de função antes de sua declaração. |
| `noMissingVarFunction` | `error` | Proíbe var função ausente para variáveis CSS (CSS). |
| `noNodejsModules` | `off` | Proíbe o uso de módulos internos do Node.js. |
| `noNonoctalDecimalEscape` | `error` | Proíbe sequências de escape `\8` e `\9` em literais de string. |
| `noPrecisionLoss` | `error` | Proíbe números literais que perdem precisão. |
| `noPrivateImports` | `off` | Restringe imports de exports privados. |
| `noProcessGlobal` | `off` | Proíbe o uso do global `process`. |
| `noRestrictedElements` | `error` | Proíbe o uso de elementos configurados. |
| `noSelfAssign` | `error` | Proíbe atribuições onde ambos os lados são exatamente iguais. |
| `noSetterReturn` | `error` | Proíbe retornar um valor de um setter. |
| `noStringCaseMismatch` | `error` | Proíbe comparação de expressões que modificam o caso da string com um valor não compatível. |
| `noSwitchDeclarations` | `error` | Proíbe declarações lexicais em cláusulas switch. |
| `noUndeclaredDependencies` | `off` | Proíbe o uso de dependências que não estão especificadas no `package.json`. |
| `noUndeclaredVariables` | `error` | Impede o uso de variáveis que não foram declaradas dentro do documento. |
| `noUnknownFunction` | `error` | Proíbe funções de valor CSS desconhecidas (CSS). |
| `noUnknownMediaFeatureName` | `error` | Proíbe nomes de media feature desconhecidos (CSS). |
| `noUnknownProperty` | `error` | Proíbe propriedades desconhecidas (CSS). |
| `noUnknownPseudoClass` | `error` | Proíbe seletores de pseudo-classe desconhecidos (CSS). |
| `noUnknownPseudoElement` | `error` | Proíbe seletores de pseudo-elemento desconhecidos (CSS). |
| `noUnknownTypeSelector` | `error` | Proíbe seletores de tipo desconhecidos (CSS). |
| `noUnknownUnit` | `error` | Proíbe unidades CSS desconhecidas (CSS). |
| `noUnmatchableAnbSelector` | `error` | Proíbe seletores An+B não combináveis (CSS). |
| `noUnreachable` | `error` | Proíbe código inatingível. |
| `noUnreachableSuper` | `error` | Garante que o construtor `super()` seja chamado exatamente uma vez em cada caminho de execução em um construtor de classe antes de `this` ser acessado. |
| `noUnsafeFinally` | `error` | Proíbe declarações de controle de fluxo em blocos finally. |
| `noUnsafeOptionalChaining` | `error` | Proíbe o uso de encadeamento opcional em contextos onde o valor undefined não é permitido. |
| `noUnusedFunctionParameters` | `error` | Proíbe parâmetros de função não utilizados. |
| `noUnusedImports` | `error` (safe fix override) | Proíbe imports não utilizados. |
| `noUnusedLabels` | `error` | Proíbe labels não utilizadas. |
| `noUnusedPrivateClassMembers` | `error` | Proíbe membros privados de classe não utilizados. |
| `noUnusedVariables` | `error` | Proíbe variáveis não utilizadas. |
| `noVoidTypeReturn` | `error` | Proíbe retornar um valor de uma função com tipo de retorno `void`. |
| `useGraphqlNamedOperations` | `error` | Exige especificar o nome de operações GraphQL. |
| `useImageSize` | `error` | Exige que elementos `<img>` tenham atributos width e height. |
| `useImportExtensions` | `off` | Impõe extensões de arquivo para imports relativos. |
| `useIsNan` | `error` | Exige chamadas a `isNaN()` ao verificar NaN. |
| `useJsonImportAttributes` | `off` | Exige o uso de `{ type: "json" }` para imports de módulos JSON. |
| `useParseIntRadix` | `error` | Impõe o uso consistente do argumento radix ao usar `parseInt()`. |
| `useSingleJsDocAsterisk` | `error` | Impõe que linhas de comentário JSDoc comecem com um único asterisco, exceto a primeira. |
| `useUniqueElementIds` | `off` | Evita o uso de atributo id com literal de string estático em elementos. |
| `useValidForDirection` | `error` | Impõe que a cláusula de atualização do loop `for` mova o contador na direção correta. |
| `useValidTypeof` | `error` | Esta regra verifica se o resultado de uma expressão `typeof` é comparado a um valor válido. |
| `useYield` | `error` | Exige que funções geradoras contenham `yield`. |

### Experimental

| Rule | Setting | Description |
|------|---------|-------------|
| `noContinue` | `off` | Proíbe declarações continue. |
| `noDeprecatedImports` | `off` | Restringe imports de exports obsoletos. |
| `noDuplicateDependencies` | `error` | Impede a listagem de dependências duplicadas. |
| `noDuplicatedSpreadProps` | `error` | Proíbe propriedades duplicadas em spread props. |
| `noEmptySource` | `error` | Proíbe arquivos fonte vazios. |
| `noEqualsToNull` | `error` | Proíbe usar `==` ou `!=` para comparar com `null`. Use `===` ou `!==` em vez disso. |
| `noFloatingPromises` | `off` | Exige que expressões tipo Promise sejam tratadas adequadamente. |
| `noForIn` | `off` | Proíbe iterar usando um loop for-in. |
| `noImportCycles` | `off` | Previne ciclos de import. |
| `noIncrementDecrement` | `error` | Proíbe o uso dos operadores `++` e `--` (exceto em for loops na expressão de atualização). |
| `noJsxLiterals` | `off` | Proíbe literais de string dentro de elementos JSX. |
| `noLeakedRender` | `error` | Previne valores problemáticos vazados em JSX (ex.: 0 ou NaN) de serem renderizados. |
| `noMisusedPromises` | `off` | Proíbe o uso de Promises em locais onde quase certamente são um erro. |
| `noMultiStr` | `error` | Proíbe strings multilinha usando continuação com barra invertida. |
| `noParametersOnlyUsedInRecursion` | `error` | Proíbe parâmetros que são usados apenas em chamadas recursivas. |
| `noProto` | `error` | Proíbe o uso da propriedade `__proto__`. |
| `noShadow` | `error` | Proíbe declarações de variáveis que sombreiam variáveis declaradas no escopo externo. |
| `noSyncScripts` | `error` | Evita o uso de scripts síncronos. |
| `noTernary` | `off` | Proíbe operadores ternários. |
| `noUnnecessaryConditions` | `off` | Proíbe condições baseadas em tipo desnecessárias que podem ser determinadas estaticamente como redundantes. |
| `noUnresolvedImports` | `off` | Aviso ao importar exports inexistentes. |
| `noUnusedExpressions` | `error` | Proíbe expressões que não sejam chamada de função nem atribuição. |
| `noUselessCatchBinding` | `off` | Proíbe bindings de `catch` não utilizados. |
| `noUselessUndefined` | `error` | Proíbe o uso de `undefined` inútil. |
| `useArraySortCompare` | `off` | Impõe o uso de uma função de comparação em `Array.prototype.sort()`. |
| `useConsistentArrowReturn` | `error` | Impõe corpos consistentes em arrow functions. |
| `useConsistentGraphqlDescriptions` | `error` | Exige que todas as descrições sigam o mesmo estilo (bloco ou inline) dentro de arquivos GraphQL. |
| `useDeprecatedDate` | `error` | Exige que a diretiva `@deprecated` especifique uma data de remoção. |
| `useExhaustiveSwitchCases` | `off` | Exige que declarações switch-case sejam exaustivas. |
| `useExplicitType` | `off` | Impõe tipos em funções, métodos, variáveis e parâmetros. |
| `useFind` | `error` | Impõe o uso de `Array.prototype.find()` em vez de `Array.prototype.filter()` seguido de `[0]` ao procurar um único resultado. |
| `useMaxParams` | `error` | Impõe um número máximo de parâmetros nas definições de função. |
| `useSortedClasses` | `error` (safe fix override) | Impõe a ordenação de classes utilitárias CSS. |
| `useSpread` | `error` | Impõe o uso do operador spread em vez de `Function.prototype.apply()`. |
| `useUniqueGraphqlOperationName` | `error` | Garante que todas as operações GraphQL dentro de um documento tenham nomes únicos. |

### Desempenho

| Rule | Setting | Description |
|------|---------|-------------|
| `noAccumulatingSpread` | `error` | Proíbe o uso de sintaxe spread (`...`) em acumuladores. |
| `noAwaitInLoops` | `off` | Proíbe `await` dentro de loops. |
| `noBarrelFile` | `error` | Proíbe o uso de barrel file. |
| `noDelete` | `error` | Proíbe o uso do operador `delete`. |
| `noDynamicNamespaceImportAccess` | `error` | Proíbe acessar imports de namespace dinamicamente. |
| `noNamespaceImport` | `error` | Proíbe o uso de imports de namespace. |
| `noReExportAll` | `off` | Evita re-exportar tudo. |
| `noUnwantedPolyfillio` | `error` | Previne polyfills duplicados do Polyfill.io. |
| `useGoogleFontPreconnect` | `error` | Garante que o atributo `preconnect` seja usado ao utilizar Google Fonts. |
| `useTopLevelRegex` | `error` | Exige que literais regex sejam declarados no nível superior. |

### Segurança

| Rule | Setting | Description |
|------|---------|-------------|
| `noBlankTarget` | `error` | Proíbe o atributo `target="_blank"` sem `rel="noopener"`. |
| `noDangerouslySetInnerHtml` | `error` | Evita o uso de props JSX perigosas. |
| `noDangerouslySetInnerHtmlWithChildren` | `error` | Reporta quando um elemento DOM ou componente usa tanto children quanto a prop `dangerouslySetInnerHTML`. |
| `noGlobalEval` | `error` | Proíbe o uso de `eval()` global. |

### Estilo

| Rule | Setting | Description |
|------|---------|-------------|
| `noCommonJs` | `off` | Proíbe o uso do sistema de módulos Common JS em favor de imports estilo ESM. |
| `noDefaultExport` | `off` | Proíbe exports default. |
| `noDoneCallback` | `error` | Proíbe usar callback em testes assíncronos e hooks. |
| `noEnum` | `error` | Proíbe enums do TypeScript. |
| `noExportedImports` | `error` | Proíbe exportar uma variável importada. |
| `noImplicitBoolean` | `off` | Proíbe valores booleanos implícitos em atributos booleanos JSX. |
| `noInferrableTypes` | `error` | Proíbe anotações de tipo para variáveis, parâmetros e propriedades de classe inicializados com uma expressão literal. |
| `noMagicNumbers` | `off` | Reporta uso de "números mágicos" — números usados diretamente em vez de serem atribuídos a constantes nomeadas. |
| `noNamespace` | `error` | Proíbe o uso de namespaces do TypeScript. |
| `noNegationElse` | `error` | Proíbe negação na condição de um if se ele tiver uma cláusula else. |
| `noNestedTernary` | `error` | Proíbe expressões ternárias aninhadas. |
| `noNonNullAssertion` | `error` | Proíbe asserções non-null usando o operador pós-fix `!`. |
| `noParameterAssign` | `error` | Proíbe reatribuir parâmetros de função. |
| `noParameterProperties` | `error` | Proíbe o uso de parameter properties em construtores de classes. |
| `noProcessEnv` | `off` | Proíbe o uso de `process.env`. |
| `noRestrictedGlobals` | `error` | Esta regra permite especificar nomes de variáveis globais que você não deseja usar na sua aplicação. |
| `noRestrictedImports` | `error` | Proíbe módulos especificados quando carregados por import ou require. |
| `noRestrictedTypes` | `error` | Proíbe tipos definidos pelo usuário. |
| `noShoutyConstants` | `error` | Proíbe o uso de constantes cujo valor é a versão em maiúsculas de seu nome. |
| `noSubstr` | `error` | Impõe o uso de `String.slice()` em vez de `String.substr()` e `String.substring()`. |
| `noUnusedTemplateLiteral` | `error` | Proíbe literais template se interpolação e tratamento de caracteres especiais não forem necessários. |
| `noUselessElse` | `error` | Proíbe bloco else quando o bloco if termina cedo. |
| `noYodaExpression` | `error` | Proíbe o uso de expressões tipo Yoda. |
| `useArrayLiterals` | `error` | Proíbe construtores `Array`. |
| `useAsConstAssertion` | `error` | Impõe o uso de as const em vez de tipo literal e anotação de tipo. |
| `useAtIndex` | `error` | Use `at()` em vez de acesso por índice inteiro. |
| `useBlockStatements` | `error` | Requer seguir convenções de chaves. |
| `useCollapsedElseIf` | `error` | Impõe usar `else if` em vez de `if` aninhado em cláusulas `else`. |
| `useCollapsedIf` | `error` | Impõe usar um único `if` em vez de cláusulas `if` aninhadas. |
| `useComponentExportOnlyModules` | `off` | Impõe declarar componentes apenas em módulos que exportam Componentes React exclusivamente. |
| `useConsistentArrayType` | `error` | Requer usar consistentemente `T[]` ou `Array<T>`. |
| `useConsistentBuiltinInstantiation` | `error` | Impõe o uso de new para todos os builtins, exceto `String`, `Number` e `Boolean`. |
| `useConsistentCurlyBraces` | `off` | Esta regra impõe uso consistente de chaves dentro de atributos JSX e filhos JSX. |
| `useConsistentMemberAccessibility` | `error` | Requer modificadores de acessibilidade consistentes em propriedades e métodos de classe. |
| `useConsistentObjectDefinitions` | `error` | Requer declaração consistente de literais de objeto. |
| `useConst` | `error` | Requer declarações const para variáveis que são atribuídas apenas uma vez. |
| `useDefaultParameterLast` | `error` | Impõe que parâmetros padrão e parâmetros opcionais venham por último. |
| `useDefaultSwitchClause` | `error` | Requer a cláusula `default` em declarações switch. |
| `useDeprecatedReason` | `error` | Exige especificar o motivo ao usar a diretiva `@deprecated`. |
| `useEnumInitializers` | `error` | Requer que cada membro de enum tenha seu valor explicitamente inicializado. |
| `useExplicitLengthCheck` | `off` | Impõe comparar explicitamente as propriedades `length`, `size`, `byteLength` ou `byteOffset` de um valor. |
| `useExponentiationOperator` | `error` | Proíbe o uso de `Math.pow` em favor do operador `**`. |
| `useExportType` | `error` | Promove o uso de export type para tipos. |
| `useExportsLast` | `off` | Requer que todos os exports sejam declarados após todas as declarações não-export. |
| `useFilenamingConvention` | `error` | Impõe convenções de nomeação para arquivos JavaScript e TypeScript (kebab-case, ASCII). |
| `useForOf` | `error` | Esta regra recomenda um loop for-of quando, em um for, o índice é usado para extrair um item do array iterado. |
| `useFragmentSyntax` | `error` | Esta regra impõe o uso de `<>...</>` em vez de `<Fragment>...</Fragment>`. |
| `useGraphqlNamingConvention` | `error` | Valida que todos os valores de enum estejam capitalizados. |
| `useGroupedAccessorPairs` | `error` | Impõe que getters e setters para a mesma propriedade estejam adjacentes em definições de classe e objeto. |
| `useImportType` | `error` | Promove o uso de `import type` para tipos. |
| `useLiteralEnumMembers` | `error` | Requer que todos os membros de enums sejam valores literais. |
| `useNamingConvention` | `off` | Regra de convenção de nomes (desativada). |
| `useNodeAssertStrict` | `error` | Promove o uso de `node:assert/strict` em vez de `node:assert`. |
| `useNodejsImportProtocol` | `error` | Impõe o uso do protocolo `node:` para módulos internos do Node.js. |
| `useNumberNamespace` | `error` | Use as propriedades de `Number` em vez das globais. |
| `useNumericSeparators` | `error` | Impõe o uso de separadores numéricos em literais numéricos. |
| `useObjectSpread` | `error` | Prefere object spread em vez de `Object.assign()` ao construir novos objetos. |
| `useReadonlyClassProperties` | `error` | Impõe marcar membros como readonly se nunca são modificados fora do construtor. |
| `useSelfClosingElements` | `error` | Evita tags de fechamento extras para componentes sem children. |
| `useShorthandAssign` | `error` | Requer shorthand de operador de atribuição quando possível. |
| `useShorthandFunctionType` | `error` | Impõe usar tipos de função em vez de tipo de objeto com assinaturas de chamada. |
| `useSingleVarDeclarator` | `off` | Proíbe múltiplas declarações de variáveis na mesma instrução. |
| `useSymbolDescription` | `error` | Requer um parâmetro de descrição para `Symbol()`. |
| `useTemplate` | `error` | Prefere literais template em vez de concatenação de strings. |
| `useThrowNewError` | `error` | Requer `new` ao lançar um erro. |
| `useThrowOnlyError` | `error` | Proíbe lançar valores não-`Error`. |
| `useTrimStartEnd` | `error` | Impõe o uso de `String.trimStart()` e `String.trimEnd()` em vez de `String.trimLeft()` e `String.trimRight()`. |
| `useUnifiedTypeSignatures` | `error` | Proíbe assinaturas de overload que podem ser unificadas em uma única assinatura. |
| `noDescendingSpecificity` | `error` | Proíbe que um seletor de especificidade menor venha depois de um seletor de especificidade maior (CSS). |
| `noValueAtRule` | `error` | Proíbe o uso da regra `@value` em css modules (CSS). |

### Suspeitos

| Rule | Setting | Description |
|------|---------|-------------|
| `noAlert` | `error` | Proíbe o uso de `alert`, `confirm` e `prompt`. |
| `noApproximativeNumericConstant` | `error` | Use constantes padrão em vez de literais aproximados. |
| `noAssignInExpressions` | `error` | Proíbe atribuições em expressões. |
| `noAsyncPromiseExecutor` | `error` | Proíbe usar uma função async como executor de Promise. |
| `noBiomeFirstException` | `error` | Evita o uso do padrão `!` na primeira posição de `files.includes` no arquivo de configuração. |
| `noBitwiseOperators` | `error` | Proíbe operadores bitwise. |
| `noCatchAssign` | `error` | Proíbe reatribuir exceções em cláusulas catch. |
| `noClassAssign` | `error` | Proíbe reatribuir membros de classe. |
| `noCommentText` | `error` | Evita que comentários sejam inseridos como nós de texto. |
| `noCompareNegZero` | `error` | Proíbe comparar contra `-0`. |
| `noConfusingLabels` | `error` | Proíbe statements com labels que não são loops. |
| `noConfusingVoidType` | `error` | Proíbe void fora de genéricos ou tipos de retorno. |
| `noConsole` | `off` | Proíbe o uso de `console`. |
| `noConstEnum` | `error` | Proíbe const enum do TypeScript. |
| `noConstantBinaryExpressions` | `error` | Proíbe expressões cujo resultado não é afetado pela operação. |
| `noControlCharactersInRegex` | `error` | Evita caracteres de controle e algumas sequências de escape que correspondem a caracteres de controle em literais de expressão regular. |
| `noDebugger` | `error` | Proíbe o uso de debugger. |
| `noDocumentCookie` | `error` | Proíbe atribuições diretas a document.cookie. |
| `noDoubleEquals` | `error` | Exige o uso de `===` e `!==`. |
| `noDuplicateAtImportRules` | `error` | Proíbe `@import` duplicados (CSS). |
| `noDuplicateCase` | `error` | Proíbe labels de case duplicadas. |
| `noDuplicateClassMembers` | `error` | Proíbe membros de classe duplicados. |
| `noDuplicateCustomProperties` | `error` | Proíbe propriedades customizadas duplicadas dentro de blocos de declaração (CSS). |
| `noDuplicateElseIf` | `error` | Proíbe condições duplicadas em cadeias if-else-if. |
| `noDuplicateFields` | `error` | Proíbe campos duplicados em operações GraphQL. |
| `noDuplicateFontNames` | `error` | Proíbe nomes duplicados dentro de famílias de fontes (CSS). |
| `noDuplicateObjectKeys` | `error` | Proíbe duas chaves com o mesmo nome dentro de objetos. |
| `noDuplicateParameters` | `error` | Proíbe nome de parâmetros de função duplicados. |
| `noDuplicateProperties` | `error` | Proíbe propriedades duplicadas dentro de blocos de declaração (CSS). |
| `noDuplicateSelectorsKeyframeBlock` | `error` | Proíbe seletores duplicados dentro de blocos keyframe (CSS). |
| `noDuplicateTestHooks` | `error` | Um bloco describe não deve conter hooks duplicados. |
| `noEmptyBlock` | `error` | Proíbe blocos vazios em CSS (CSS). |
| `noEmptyBlockStatements` | `error` | Proíbe declarações de bloco vazias e blocos estáticos. |
| `noEmptyInterface` | `error` | Proíbe a declaração de interfaces vazias. |
| `noEvolvingTypes` | `error` | Proíbe variáveis que evoluem para any por meio de reatribuições. |
| `noExplicitAny` | `error` | Proíbe o uso do tipo any. |
| `noExportsInTest` | `error` | Proíbe usar export ou module.exports em arquivos com testes. |
| `noExtraNonNullAssertion` | `error` | Previne o uso incorreto do operador de asserção non-null `!` em arquivos TypeScript. |
| `noFallthroughSwitchClause` | `error` | Proíbe fallthrough em cláusulas switch. |
| `noFocusedTests` | `error` | Proíbe testes focados. |
| `noFunctionAssign` | `error` | Proíbe reatribuir declarações de função. |
| `noGlobalAssign` | `error` | Proíbe atribuições a objetos nativos e variáveis globais somente leitura. |
| `noGlobalIsFinite` | `error` | Use `Number.isFinite` em vez de `isFinite` global. |
| `noGlobalIsNan` | `error` | Use `Number.isNaN` em vez de `isNaN` global. |
| `noImplicitAnyLet` | `error` | Proíbe uso de tipo any implícito em declarações de variável. |
| `noImportAssign` | `error` | Proíbe atribuir a bindings importados. |
| `noImportantInKeyframe` | `error` | Proíbe `!important` inválido dentro de declarações keyframe (CSS). |
| `noIrregularWhitespace` | `error` | Proíbe o uso de caracteres de espaço irregular. |
| `noLabelVar` | `error` | Proíbe labels que compartilham nome com uma variável. |
| `noMisleadingCharacterClass` | `error` | Proíbe caracteres formados por múltiplos code points em sintaxe de classe de caracteres. |
| `noMisleadingInstantiator` | `error` | Impõe uso correto de `new` e `constructor`. |
| `noMisplacedAssertion` | `error` | Verifica que a função de asserção, por exemplo expect, esteja dentro de uma chamada `it()`. |
| `noMisrefactoredShorthandAssign` | `error` | Proíbe shorthand assign quando a variável aparece em ambos os lados. |
| `noOctalEscape` | `error` | Proíbe sequências de escape octais em literais de string. |
| `noPrototypeBuiltins` | `error` | Proíbe uso direto de builtins de `Object.prototype`. |
| `noQuickfixBiome` | `error` | Proíbe o uso de `quickfix.biome` dentro do arquivo de configurações do editor. |
| `noRedeclare` | `error` | Proíbe redeclarações de variável, função, classe e tipo no mesmo escopo. |
| `noRedundantUseStrict` | `error` | Evita ter `use strict` redundante. |
| `noSelfCompare` | `error` | Proíbe comparações onde ambos os lados são exatamente iguais. |
| `noShadowRestrictedNames` | `error` | Proíbe identificadores que sombreiam nomes restritos. |
| `noShorthandPropertyOverrides` | `error` | Proíbe propriedades shorthand que sobrescrevem propriedades longhand relacionadas (CSS). |
| `noSkippedTests` | `error` | Proíbe testes desabilitados. |
| `noSparseArray` | `error` | Evita o uso de arrays esparsos (arrays com lacunas). |
| `noTemplateCurlyInString` | `error` | Proíbe sintaxe de placeholder de template literal em strings regulares. |
| `noThenProperty` | `error` | Proíbe a propriedade then. |
| `noTsIgnore` | `error` | Evita o uso da diretiva TypeScript `@ts-ignore`. |
| `noUnassignedVariables` | `error` | Proíbe variáveis let ou var que são lidas mas nunca atribuídas. |
| `noUnknownAtRules` | `error` | Proíbe at-rules desconhecidos (CSS). |
| `noUnsafeDeclarationMerging` | `error` | Proíbe merge de declarações inseguro entre interfaces e classes. |
| `noUnsafeNegation` | `error` | Proíbe usar negação insegura (`!`). |
| `noUselessEscapeInString` | `error` | Proíbe escapes desnecessários em literais de string. |
| `noUselessRegexBackrefs` | `error` | Proíbe backreferences inúteis em literais de expressão regular que sempre casam uma string vazia. |
| `noVar` | `error` | Proíbe o uso de `var`. |
| `noWith` | `error` | Proíbe statements with em contextos não-strict. |
| `useAdjacentOverloadSignatures` | `error` | Proíbe o uso de assinaturas de overload que não estejam próximas uma da outra. |
| `useAwait` | `error` | Garante que funções async utilizem `await`. |
| `useBiomeIgnoreFolder` | `error` | Promove o uso correto para ignorar pastas no arquivo de configuração. |
| `useDefaultSwitchClauseLast` | `error` | Impõe que cláusulas default em switch estejam por último. |
| `useErrorMessage` | `error` | Impõe passar uma mensagem ao criar um erro embutido. |
| `useGetterReturn` | `error` | Impõe que getters sempre retornem um valor. |
| `useGoogleFontDisplay` | `error` | Impõe o uso de uma estratégia de display recomendada com Google Fonts. |
| `useGuardForIn` | `error` | Requer que loops for-in incluam uma instrução `if`. |
| `useIsArray` | `error` | Use `Array.isArray()` em vez de `instanceof Array`. |
| `useIterableCallbackReturn` | `error` | Impõe valores de retorno consistentes em callbacks iteráveis. |
| `useNamespaceKeyword` | `error` | Requer usar a keyword namespace em vez de `module` para declarar namespaces TypeScript. |
| `useNumberToFixedDigitsArgument` | `error` | Impõe usar o argumento digits com `Number#toFixed()`. |
| `useStaticResponseMethods` | `error` | Use métodos estáticos de `Response` em vez do construtor `new Response()` quando possível. |
| `useStrictMode` | `error` | Impõe o uso da diretiva `use strict` em arquivos script. |

## Notas

Certas regras estão desativadas porque são lentas demais para rodar com o Scanner. Como observado na [documentação do Biome](https://biomejs.dev/guides/investigate-slowness/#first-things-first), regras de projeto habilitadas são conhecidas por causar sobrecarga de desempenho em troca de análises mais avançadas.

Em nossos testes, descobrimos que essas regras podem fazer a diferença entre um lint de 300ms e um de 13s.